package com.sdry.mapper.lz;

import com.sdry.model.lz.LzQueryCriteria;
import com.sdry.model.lz.Warehouse;
import com.sdry.model.lz.WarehouseRegion;
import com.sdry.model.lz.WarehouseRegionLocation;
import com.sdry.model.zc.ZcGeneralQueryEntity;

import java.util.List;

/**
 * @ClassName WarehouseMapper
 * @Description 仓库信息
 * @Author lz
 * @Date 2019年4月9日 10:21:15
 * @Version 1.0
 * 
 * 修改人：吉永艳
 * 修改时间：2019-11-08
 * 修改内容：增加仓库id:58-96
 */
public interface WarehouseMapper {

    Long addWarehouse(Warehouse warehouse);

    Long deleteWarehouseById(long id);

    Long updateWarehouse(Warehouse warehouse);

    List<Warehouse> queryWarehouseCriteria(LzQueryCriteria criteria);

    int countWarehouseCriteria(LzQueryCriteria criteria);


    Long addWarehouseRegion(WarehouseRegion warehouseRegion);

    Long deleteWarehouseRegionById(long id);

    Long updateWarehouseRegion(WarehouseRegion warehouseRegion);

    List<WarehouseRegion> queryWarehouseRegionCriteria(ZcGeneralQueryEntity zcGeneralQueryEntity);

    int countWarehouseRegionCriteria(ZcGeneralQueryEntity zcGeneralQueryEntity);


    Long addWarehouseRegionLocation(WarehouseRegionLocation warehouseRegionLocation);

    Long deleteWarehouseRegionLocationById(long id);

    Long updateWarehouseRegionLocation(WarehouseRegionLocation warehouseRegionLocation);

    List<WarehouseRegionLocation> queryWarehouseRegionLocationCriteria(LzQueryCriteria criteria);

    int countWarehouseRegionLocationCriteria(LzQueryCriteria criteria);
    
    /**
     * 根据仓库id查询仓库信息
     * @param warehouse_id 仓库id
     * @return 仓库实体
     */
    Warehouse queryWarehouse(Long warehouse_id);
    
    /**
     * 根据仓库id查询仓库
     * @param warehouse_id 仓库id
     * @return 仓库集合
     * 
     * 修改人：吉永艳
	 * 修改时间：2019-11-08
	 * 修改内容：增加仓库id
     */
	List<Warehouse> queryAllWarehouse(Long warehouse_id);

	/**
	 * 根据仓库id查询所有库区信息
	 * @param warehouse_id 仓库id
	 * @return 库区集合
	 * 
	 * 修改人：吉永艳
	 * 修改时间：2019-11-08
	 * 修改内容：增加仓库id
	 */
	List<WarehouseRegion> queryAllWarehouseRegion(Long warehouse_id);
 	
	/**
	 * 带条件的分页查询库区信息
	 * @param criteria 条件实体
	 * @return 库区集合
	 * @author jyy
	 * 2019-11-08
	 */
	List<WarehouseRegion> queryWarehouseRegionCriteria(LzQueryCriteria criteria);

	/**
	 * 带条件的统计库区信息
	 * @param criteria 条件实体
	 * @return 统计结果
	 * @author jyy
	 * 2019-11-08
	 */
	int countWarehouseRegionCriteria(LzQueryCriteria criteria);
}
